Electronic devices often contain firmware and application software that may be either provided by the manufacturers of the electronic devices, by telecommunication carriers, or by third parties. These firmware and application software often contain software bugs. New versions of the firmware and software are periodically released to fix the bugs, to introduce new features, or both.
The electronic devices may be constrained in terms of resources, such as available memory. Attempts to upgrade firmware or software by end-users often results in making the device, or some features of the device, inoperable. Changing firmware in electronic devices requires care, as unsuccessful attempts may result in making the device inoperable.
Generating update packages that are helpful in changing firmware in electronic devices requires an appreciation of the problems of applying the generated update packages in electronic devices, as such attempts to upgrade firmware and/or software in constrained devices are often hampered by limited user interaction capabilities and slow communication speeds on these devices.
Determination of the version of firmware and/or software currently being executed on an electronic devices is challenging, especially if such determination is made without requiring any (or minimal) end-user interaction.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings appended hereto.